/**
 * @file    elog_file_cfg.h
 * @brief   EasyLogger File插件配置头文件
 * @details 本文件包含了EasyLogger文件存储插件的所有配置选项，包括：
 *          - 文件日志存储路径配置
 *          - 日志文件大小和轮转配置
 *          - 文件存储相关参数配置
 *          - 插件功能开关配置
 */

#ifndef _ELOG_FILE_CFG_H_
#define _ELOG_FILE_CFG_H_

/* ---------------------------------- 基础文件配置 ---------------------------------------------- */
/* 日志文件名配置 - 必须配置 */
#define ELOG_FILE_NAME                   "app_log.log"      /* 日志文件名，支持相对路径和绝对路径 */
                                                            /* 示例: "log/system.log" 或 "/sdcard/app.log" */

/* 单个日志文件最大大小配置 - 必须配置 */
#define ELOG_FILE_MAX_SIZE               (1024 * 1024)      /* 1MB，当文件达到此大小时会自动轮转 */
                                                            /* 建议范围: 64KB ~ 10MB，根据存储空间调整 */

/* 最大轮转文件数量配置 - 必须配置 */
#define ELOG_FILE_MAX_ROTATE             5                  /* 保留5个备份文件 (xxx.log.0 ~ xxx.log.4) */
                                                            /* 设置为0表示不进行文件轮转，只使用单个文件 */
                                                            /* 总文件数 = 1(当前) + ELOG_FILE_MAX_ROTATE(备份) */

/* --------------------------------- 功能开关配置 ---------------------------------------------- */
#define ELOG_FILE_ENABLE                                    /* 启用File插件功能 */
#define ELOG_FILE_FLUSH_CACHE_ENABLE                        /* 启用文件缓存刷新功能 */

/* --------------------------------- 文件系统配置 ---------------------------------------------- */
#define ELOG_FILE_SYSTEM_TYPE_FATFS                         /* 文件系统类型配置 */
                                                            /* 支持: FATFS, POSIX, LITTLEFS 等 */

#define ELOG_FILE_PATH_SEPARATOR         "/"                /* 文件路径分隔符配置 */
                                                            /* Linux/Unix: "/" , Windows: "\\" */

#define ELOG_FILE_CREATE_MODE            0644               /* 文件创建权限配置 (仅POSIX系统) */
                                                            /* 0644: 所有者读写，组和其他用户只读 */

/* --------------------------------- 性能优化配置 ---------------------------------------------- */
#define ELOG_FILE_WRITE_BUFFER_SIZE      512                /* 文件写入缓冲区大小 (字节) */
                                                            /* 建议范围: 256 ~ 2048，影响写入效率 */

#define ELOG_FILE_SYNC_INTERVAL_MS       1000               /* 文件同步间隔（毫秒） */
                                                            /* 0表示每次写入都同步，>0表示定时同步 */

/* --------------------------------- 使用示例和说明 -------------------------------------------- */
/*
 * 配置示例1 - 基本配置 (适用于大多数应用):
 * #define ELOG_FILE_NAME           "system.log"
 * #define ELOG_FILE_MAX_SIZE       (512 * 1024)    // 512KB
 * #define ELOG_FILE_MAX_ROTATE     3                // 保留3个备份文件
 * 
 * 配置示例2 - 大容量存储配置:
 * #define ELOG_FILE_NAME           "/sdcard/logs/app.log"
 * #define ELOG_FILE_MAX_SIZE       (5 * 1024 * 1024)  // 5MB
 * #define ELOG_FILE_MAX_ROTATE     10               // 保留10个备份文件
 * 
 * 配置示例3 - 嵌入式小容量配置:
 * #define ELOG_FILE_NAME           "debug.log"
 * #define ELOG_FILE_MAX_SIZE       (64 * 1024)     // 64KB
 * #define ELOG_FILE_MAX_ROTATE     2                // 保留2个备份文件
 * 
 * 注意事项:
 * 1. 确保文件系统有足够空间存储所有日志文件
 * 2. 总占用空间 ≈ ELOG_FILE_MAX_SIZE × (ELOG_FILE_MAX_ROTATE + 1)
 * 3. 文件路径必须存在，插件不会自动创建目录
 * 4. 在RTOS环境下建议启用ELOG_FILE_FLUSH_CACHE_ENABLE
 */

#endif /* _ELOG_FILE_CFG_H_ */
